ცხრილები დაკავშირებული არიან ველით nomeri, დაკავშირების ტიპია 1:∞. მთავარი ცხრილია tbstudenti, დამოკიდებული კი – tbsaati.
• დააპროექტეთ ფორმები და დააკავშირეთ ისინი ცხრილებთან, კერძოდ: Fstudentitbstudenti, Fsaati tbsaati. ფორმაზე Fsaati ველების სტუდენტის საიდენტიფიკაციო ნომერი, თარიღი, საგნის კოდი, გაცდენილი საათები დამატებით დაიტანეთ მართვის ელემენტი ComboBox და მიანიჭეთ სახელი Lsia;
• ფორმის Fsaati მოდულში ჩაწერეთ პროგრამები:
Private Sub Form_Load() ’ ფორმის ჩატვირთვისას მართვის ელემენტი Lsia შეივსება ცხრილში tbsaati არსებული მონაცემებით
Dim kit As String
kit = „select * From tbsaati“
With Me.Lsia
.ColumnCount = 4
.ColumnHeads = True
.ColumnWidths = „1in;1in;0.5in;0.5in“
.RowSourceType = „Table/Query“
.RowSource = kit
End With
End Sub
Private Sub Lsia_AfterUpdate() ’Lsia-ში არსებულ ერთ-ერთ სტრიქონზე დაწკაპუნებით ამოირჩევა ეს სტრიქონი და მნიშვნელობები ჩაიწერება ფორმაზე დატანილ ველებში
Dim kit As String
kit = „Select * From tbsaati WHERE sagkodii = „ & Me.Lsia.Column(2) & „ and nomeri =“ & Me.Lsia.Column(0) & ”“
’
ყურადღება მიაქციეთ nomeri =“ & Me.Lsia.Column(0) & ” ჩაწერის სინტაქსს. აქ გამოყენებული არ არის ნიშანი ’ , იმიტომ, რომ შეკითხვაში ციფრული მონაცემის მნიშვნელობა არ უნდა იყოს მოთავსებული ’ ნიშნებში. სტრიქონის ტიპის მონაცემის შემთხვევაში სიმბოლოს ’ (აპსოსტროფი) გამოყენება აუცილებელია. თარიღის ფორმატისას კი უნდა დაიწეროს #, ამავე დროს ცხრილში თარიღი ჩაწერის ფორმატი შემდეგია 00/00/00
Form_Fsaati.RecordSource = kit
End Sub
Private Sub Lsia_NotInList(NewData As String, Response As Integer)
’Lsia-ში ახალი ნომრის ჩაწერისას წარმოიქმნება მოვლენა NotInList
Dim strresp As Byte
strresp = MsgBox(„gsurT damateba „ & NewData, vbYesNo) ’გამოიტანება შეკითხვა ჩანაწერის დამატების შესახებ
If strresp = vbYes Then
DoCmd.OpenForm „Fstudenti“, acNormal, , , acFormAdd, acDialog, NewData
’ შეკითხვაზე დადებითი პასუხის შემთხვევაში გაიღება ფორმა Fstudenti და ფორმას გადაცემა არგუმენტი NewData
Response = acDataErrContinue
ElseIf strresp = vbNo Then
Response = acDataErrContinue
Me.Lsia.Undo
End If
End Sub